package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.po.*;
import com.ruoyi.system.domain.vo.ConsultationRecordVO;

import java.util.Date;
import java.util.List;

public interface PetHospitalService {

    /**
     * 根据手机号查询客户信息
     *
     * @param phone 手机号
     * @return 客户信息
     */
    AjaxResult queryCustomerByPhone(String phone);

    /**
     * 挂号就诊
     *
     * @param consultationPO 就诊信息
     * @return 挂号结果
     */
    AjaxResult consultation(ConsultationPO consultationPO);

    /**
     * 会员充值
     *
     * @param consultationPO 充值信息
     * @return 会员充值结果
     */
    AjaxResult recharge(CustomerRechargePO consultationPO);

    /**
     * 根据医生查询就诊宠物信息
     *
     * @param consultationRecordPO 手机号
     * @return 就诊宠物信息
     */
    List<ConsultationRecordVO> queryConsultationRecord(ConsultationRecordPO consultationRecordPO);

    /**
     * 根据就诊单开处方
     *
     * @param prescriptionPO 处方
     * @return 开处方
     */
    AjaxResult prescribing(ConsultationPrescriptionPO prescriptionPO);

    /**
     * 缓存就诊单开处方
     *
     * @param prescriptionPO 处方
     * @return 开处方
     */
    AjaxResult prescribingCache(ConsultationPrescriptionPO prescriptionPO);

    /**
     * 获取缓存就诊单开处方
     *
     * @param consultationId 就诊单
     * @return 开处方
     */
    AjaxResult getPrescribingCache(Long consultationId);

    /**
     * 检查
     *
     * @param prescriptionPO 检查信息
     * @return 检查
     */
    AjaxResult inspection(InspectionRecordPO prescriptionPO);

    /**
     * 零售
     *
     * @param retailPO 零售
     * @return 零售
     */
    AjaxResult retail(RetailPO retailPO);

    /**
     * 查询待出库的出库单
     *
     * @param customerPhone 手机号
     * @return 出库单
     */
    AjaxResult queryOutboundOrder(String customerPhone,Date timeStart, Date timeEnd);

    /**
     * 处方出库
     *
     * @param inspectionOutboundPO 处方
     * @return 处方出库
     */
    AjaxResult outbound(InspectionOutboundPO inspectionOutboundPO);
}
